home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / share / initramfs-tools / scripts / nfs < prev   
Encoding:
Text File  |  2010-06-18  |  1.7 KB  |  81 lines

  1. # NFS filesystem mounting            -*- shell-script -*-
  2.  
  3. # FIXME This needs error checking
  4.  
  5. retry_nr=0
  6.  
  7. # parse nfs bootargs and mount nfs
  8. do_nfsmount()
  9. {
  10.  
  11.     configure_networking
  12.  
  13.     # get nfs root from dhcp
  14.     if [ "x${NFSROOT}" = "xauto" ]; then
  15.         # check if server ip is part of dhcp root-path
  16.         if [ "${ROOTPATH#*:}" = "${ROOTPATH}" ]; then
  17.             NFSROOT=${ROOTSERVER}:${ROOTPATH}
  18.         else
  19.             NFSROOT=${ROOTPATH}
  20.         fi
  21.  
  22.     # nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
  23.     elif [ -n "${NFSROOT}" ]; then
  24.         # nfs options are an optional arg
  25.         if [ "${NFSROOT#*,}" != "${NFSROOT}" ]; then
  26.             NFSOPTS="-o ${NFSROOT#*,}"
  27.         fi
  28.         NFSROOT=${NFSROOT%%,*}
  29.         if [ "${NFSROOT#*:}" = "$NFSROOT" ]; then
  30.             NFSROOT=${ROOTSERVER}:${NFSROOT}
  31.         fi
  32.     fi
  33.  
  34.     if [ -z "${NFSOPTS}" ]; then
  35.         NFSOPTS="-o retrans=10"
  36.     fi
  37.  
  38.     [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/nfs-premount"
  39.     run_scripts /scripts/nfs-premount
  40.     [ "$quiet" != "y" ] && log_end_msg
  41.  
  42.     if [ ${readonly} = y ]; then
  43.         roflag="-o ro"
  44.     else
  45.         roflag="-o rw"
  46.     fi
  47.  
  48.     nfsmount -o nolock ${roflag} ${NFSOPTS} ${NFSROOT} ${rootmnt}
  49. }
  50.  
  51. # NFS root mounting
  52. mountroot()
  53. {
  54.     [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/nfs-top"
  55.     run_scripts /scripts/nfs-top
  56.     [ "$quiet" != "y" ] && log_end_msg
  57.  
  58.     modprobe nfs
  59.     # For DHCP
  60.     modprobe af_packet
  61.  
  62.     wait_for_udev 10
  63.  
  64.     # Default delay is around 180s
  65.     delay=${ROOTDELAY:-180}
  66.  
  67.     # loop until nfsmount succeeds
  68.     do_nfsmount
  69.     while [ ${retry_nr} -lt ${delay} ] && [ ! -e ${rootmnt}${init} ]; do
  70.         [ "$quiet" != "y" ] && log_begin_msg "Retrying nfs mount"
  71.         /bin/sleep 1
  72.         do_nfsmount
  73.         retry_nr=$(( ${retry_nr} + 1 ))
  74.         [ "$quiet" != "y" ] && log_end_msg
  75.     done
  76.  
  77.     [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/nfs-bottom"
  78.     run_scripts /scripts/nfs-bottom
  79.     [ "$quiet" != "y" ] && log_end_msg
  80. }
  81.